package gouhuo.allbugs.top.service;

import com.baomidou.mybatisplus.extension.service.IService;
import gouhuo.allbugs.top.model.domain.Friends;
import gouhuo.allbugs.top.model.request.friends.FriendHandleRequest;
import gouhuo.allbugs.top.model.request.friends.FriendUpdateRequest;
import gouhuo.allbugs.top.model.vo.FriendsMsgVO;
import gouhuo.allbugs.top.model.vo.FriendsVO;

import javax.servlet.http.HttpServletRequest;
import java.util.List;

/**
 * @author 15294780204
 * @description 针对表【friends(好友表)】的数据库操作Service
 * @createDate 2023-05-01 18:07:13
 */
public interface FriendsService extends IService<Friends> {

    /**
     * 发送好友请求
     *
     * @param friendsMsgVO
     * @return
     */
    Long friendMsg(FriendsMsgVO friendsMsgVO);

    /**
     * 查询好友申请列表
     *
     * @param userId
     * @return
     */
    List<FriendsMsgVO> msgList(Long userId);

    /**
     * 处理好友申请
     *
     * @param friendHandleRequest
     */
    Long handleMsg(FriendHandleRequest friendHandleRequest);

    /**
     * 查询好友有列表
     *
     * @param userId
     * @return
     */
    List<FriendsVO> friendList(Long userId);

    /**
     * 修改好友备注
     */
    boolean friendUpdate(FriendUpdateRequest friendUpdateRequest);

    /**
     * 删除好友 单向/双向
     *
     * @param friendUpdateRequest
     * @return
     */
    boolean friendDelete(FriendUpdateRequest friendUpdateRequest);

    /**
     * 二者是否为好友有关系
     *
     * @param userId
     * @param friendId
     * @return
     */
    FriendsVO isFriend(Long userId, Long friendId);


    /**
     * 获取所有好友的id
     * @param userId
     * @return
     */
    List<Long> getMyFriendId(Long userId);
}
